import request from '@/utils/request'

// ======================== 学生管理相关 ========================

/**
 * 获取学生列表
 * @param {Object} params 查询参数
 * @returns {Promise}
 */
export function getStudentList(params) {
  return request({
    url: '/teacher/students',
    method: 'get',
    params
  })
}

/**
 * 按班级分组获取学生
 * @param {Object} params 查询参数
 * @returns {Promise}
 */
export function getStudentsByClass(params) {
  return request({
    url: '/teacher/students/by-class',
    method: 'get',
    params
  })
}

/**
 * 添加学生
 * @param {Object} data 学生数据
 * @returns {Promise}
 */
export function addStudent(data) {
  return request({
    url: '/teacher/students',
    method: 'post',
    data
  })
}

/**
 * 批量导入学生
 * @param {FormData} formData 文件数据
 * @returns {Promise}
 */
export function batchImportStudents(formData) {
  return request({
    url: '/teacher/students/batch-import',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

/**
 * 更新学生信息
 * @param {number} studentId 学生ID
 * @param {Object} data 更新数据
 * @returns {Promise}
 */
export function updateStudent(studentId, data) {
  return request({
    url: `/teacher/students/${studentId}`,
    method: 'put',
    data
  })
}

/**
 * 删除学生
 * @param {number} studentId 学生ID
 * @param {Object} params 删除参数
 * @returns {Promise}
 */
export function deleteStudent(studentId, params) {
  return request({
    url: `/teacher/students/${studentId}`,
    method: 'delete',
    params
  })
}

/**
 * 批量删除学生
 * @param {Object} data 删除数据
 * @returns {Promise}
 */
export function batchDeleteStudents(data) {
  return request({
    url: '/teacher/students/batch',
    method: 'delete',
    data
  })
}

/**
 * 导出学生列表
 * @param {Object} params 导出参数
 * @returns {Promise}
 */
export function exportStudentList(params) {
  return request({
    url: '/teacher/students/export',
    method: 'get',
    params,
    responseType: 'blob'
  })
}

// ======================== 提交记录管理相关 ========================

/**
 * 获取学生提交记录
 * @param {Object} params 查询参数
 * @returns {Promise}
 */
export function getSubmissionList(params) {
  return request({
    url: '/teacher/submissions',
    method: 'get',
    params
  })
}

/**
 * 获取提交详情
 * @param {number} submissionId 提交记录ID
 * @returns {Promise}
 */
export function getSubmissionDetail(submissionId) {
  return request({
    url: `/teacher/submissions/${submissionId}`,
    method: 'get'
  })
}

/**
 * 批量下载报告
 * @param {Object} data 下载配置
 * @returns {Promise}
 */
export function batchDownloadReports(data) {
  return request({
    url: '/teacher/submissions/download-reports',
    method: 'post',
    data
  })
}

// ======================== 统计分析相关 ========================

/**
 * 获取综合统计数据
 * @param {Object} params 查询参数
 * @returns {Promise}
 */
export function getOverviewStatistics(params) {
  return request({
    url: '/teacher/statistics/overview',
    method: 'get',
    params
  })
}

/**
 * 获取趋势分析数据
 * @param {Object} params 查询参数
 * @returns {Promise}
 */
export function getTrendStatistics(params) {
  return request({
    url: '/teacher/statistics/trends',
    method: 'get',
    params
  })
}

/**
 * 获取统计数据
 * @param {Object} params 查询参数
 * @returns {Promise}
 */
export function getStatisticsData(params) {
  return request({
    url: '/teacher/statistics/data',
    method: 'get',
    params
  })
}

/**
 * 获取统计表格数据
 * @param {Object} params 查询参数
 * @returns {Promise}
 */
export function getStatisticsTable(params) {
  return request({
    url: '/teacher/statistics/table',
    method: 'get',
    params
  })
}

/**
 * 获取学生活跃度分析数据
 * @returns {Promise}
 */
export function getStudentActivity() {
  return request({
    url: '/teacher/statistics/activity',
    method: 'get'
  })
}

/**
 * 批量操作
 * @param {Object} data 操作数据
 * @returns {Promise}
 */
export function batchOperation(data) {
  return request({
    url: '/teacher/batch-operation',
    method: 'post',
    data
  })
}